461c83
@@ -159,7 +159,6 @@
public class HbaseObjectWritable implements Writable, Configurable {
     addToMap(WritableByteArrayComparable.class, code++);
     addToMap(FirstKeyOnlyFilter.class, code++);
     addToMap(DependentColumnFilter.class, code++);
-    addToMap(ColumnPrefixFilter.class, code++);
 
     addToMap(Delete [].class, code++);
 
@@ -172,6 +171,7 @@
public class HbaseObjectWritable implements Writable, Configurable {
 
     // List
     addToMap(List.class, code++);
+    addToMap(ColumnPrefixFilter.class, code++);
   }
 
   private Class<?> declaredClass;
@@ -450,13 +450,19 @@
public class HbaseObjectWritable implements Writable, Configurable {
         try {
           instanceClass = getClassByName(conf, className);
         } catch (ClassNotFoundException e) {
-          throw new RuntimeException("Can't find class " + className);
+          LOG.error("Can't find class " + className, e);
+          throw new IOException("Can't find class " + className, e);
         }
       } else {
         instanceClass = CODE_TO_CLASS.get(b);
       }
       Writable writable = WritableFactories.newInstance(instanceClass, conf);
-      writable.readFields(in);
+      try {
+        writable.readFields(in);
+      } catch (Exception e) {
+        LOG.error("Error in readFields", e);
+        throw new IOException("Error in readFields" , e);
+      }
       instance = writable;
       if (instanceClass == NullInstance.class) {  // null
         declaredClass = ((NullInstance)instance).declaredClass;
